<?php

if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * Dayrui Website Management System
 *
 * @since		version 2.6.0
 * @author		Dayrui <dayrui@gmail.com>
 * @license     http://www.dayrui.com/license
 * @copyright   Copyright (c) 2011 - 9999, Dayrui.Com, Inc.
 */

class Cron extends M_Controller {

    /**
     * 构造函数
     */
    public function __construct() {
        parent::__construct();
        $this->output->enable_profiler(FALSE);
    }

    /**
     * 执行任务和队列
     */
    public function index() {

        // 移动端不执行
        if ($this->mobile) {
            exit();
        }

        // 自动更新模块缓存（3小时一次）
        $file = FCPATH.'cache/auto.log';
        $auto = is_file($file) ? (int)file_get_contents($file) : 0;
        if (!$auto || $auto <= SYS_TIME - 10800) {
            $this->clear_cache('module');
            file_put_contents($file, SYS_TIME);
        }

        // 未到发送时间
        if (get_cookie('cron')) {
            exit('执行时间未到');
        }

        // 清理一个小时未活动的会员
        $this->db->where('`time` < '.(SYS_TIME - 3600))->delete('member_online');

        // 在线人数清理
        $num = max(100, (int)SYS_ONLINE_NUM);
        $this->db->query('delete from '.$this->db->dbprefix('member_online').' where uid not in (select t.uid from (select uid from '.$this->db->dbprefix('member_online').' order by `time` desc limit '.$num.') as t)');

        // 一次执行的任务数量
        $pernum = defined('SYS_CRON_NUMS') && SYS_CRON_NUMS ? SYS_CRON_NUMS : 10;

        // 用户每多少秒调用本程序
        set_cookie('cron', 1, SYS_CRON_TIME);

        // 查询所有队列记录
        $queue = $this->db->order_by('status ASC,id ASC')->limit($pernum)->get('cron_queue')->result_array();
        if (!$queue) {
            // 所有任务执行完毕
            $this->db->query('TRUNCATE `'.$this->db->dbprefix('cron_queue').'`');
            exit('所有任务执行完毕');
        }

        foreach ($queue as $data) {
            $this->cron_model->execute($data);
        }

        // 本次任务执行完毕
        exit('本次任务执行完毕');
    }

    // 生成首页静态文件
    public function indexhtml() {

        $dir = $this->input->get('dir');
        $siteid = max((int)$this->input->get('siteid'), 1);


    }
}